package com.bls.lib.ui.view;

import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.support.v4.content.ContextCompat;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import android.widget.RelativeLayout;
import android.widget.TextView;

import com.bls.lib.R;

import static com.blankj.utilcode.util.SnackbarUtils.getView;

/**
 * 　　  () 　　　  ()
 * 　　  ( ) 　　　( )
 * 　　  ( ) 　　　( )
 * 　　┏┛┻━━━┛┻┓
 * 　　┃　　　━　　　┃
 * 　　┃　┳┛　┗┳　┃
 * 　　┃　　　┻　　　┃
 * 　　┗━┓　　　┏━┛
 * 　　　　┃　　　┃
 * 　　　　┃　　　┗━━━┓
 * 　　　　┃　　　　　　　┣┓
 * 　　　　┃　　　　　　　┏┛
 * 　　　　┗┓┓┏━┳┓┏┛
 * 　　　　　┃┫┫　┃┫┫
 * 　　　　　┗┻┛　┗┻┛
 * ——————————————————
 * Created by BinglingSu on 2017/11/14.
 */

public class PermissionPopupWindow extends PopupWindow {
    protected Context mContext;
    private PopupWindowListener mPopupWindowListener;

    public PermissionPopupWindow(Context context, PopupWindowListener popupWindowListener) {
        this.mContext = context;
        this.mPopupWindowListener = popupWindowListener;
        getPopupView(this.mContext);
    }

    private void getPopupView(Context context) {
        LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        if (layoutInflater != null) {
            View contentView = layoutInflater.inflate(R.layout.view_permission_window, null);
            this.setContentView(contentView);
            this.setWidth(ViewGroup.LayoutParams.MATCH_PARENT);
            this.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
            this.setFocusable(true);
            this.setOutsideTouchable(true);
            this.update();
            this.setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(mContext, R.color.colorWhite)));

            RelativeLayout rlRoot = contentView.findViewById(R.id.btn_setting);
            rlRoot.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    mPopupWindowListener.onPopupWindowClick();
                    PermissionPopupWindow.this.dismiss();
                }
            });
        }
    }

    public void showPopupWindow(View parent) {
        if (!this.isShowing()) {
            this.showAtLocation(parent, Gravity.BOTTOM, 0, 0);
        } else {
            PermissionPopupWindow.this.dismiss();
        }
    }

    public interface PopupWindowListener {
        void onPopupWindowClick();
    }
}


